Calcul des prédicats
Le calcul des prédicats, ou logique du premier ordre, est une théorie formelle (au sens où il s’agit de manipuler des formules) qui modélise le raisonnement mathématique.
Des exemples de théories mathématiques modélisables en logique du premier ordre sont les entiers naturels (via les axiomes de Peano) ou les mathématiques entières (via les axiomes de Zermelo-Fraenkel). Il existe cependant des limitations bien connues à la possibilité de réaliser ces modélisations, comme l’a démontré Gödel avec ses théorèmes d’incomplétude.
Définitions
On fait comme d’habitude une distinction entre syntaxe et sémantique. Si la première est à peine plus complexe que la syntaxe du Calcul des propositions, la deuxième est beaucoup plus riche, car n’importe quelle structure mathématique peut faire de modèle à la logique du premier ordre.
Syntaxe
La logique du premier ordre a été conçue pour décrire n’importe quelle structure mathématique, comme par exemple les nombres naturels. Avant de pouvoir énoncer des propriétés (i.e., des théorèmes) d’une structure mathématique, nous devons définir quel est son langage, i.e. quelles sont les façons légitimes de combiner les objets de la structure.
Un langage, ou signature, est la donnée des éléments suivants (tous en quantité pas nécessairement finie):
- Des symboles de constante, par exemple: .
- Des symboles de fonction, par exemple: . À chaque symbole est associé un entier strictement positif appelé arité de la fonction; ce nombre indique le nombre d’arguments pris par la fonction.
- Des prédicats (ou symboles de relation), par exemple: . À chaque symbole est aussi associé une arité, qui peut être dans ce cas positive ou nulle.
Par exemple, le langage de l’arithmétique est constitué de:
- les constantes ;
- les symboles de fonction (tous de arité );
- les relations (tous de arité ).
On peut combiner les symboles d’un langage pour former des termes. Pour cela, nous nous donnons un ensemble dénombrable de variables . alors un terme est
- soit une variable,
- soit un symbole de constante,
- soit l’application d’un symbole de fonction d’arité à termes.
Par exemple
sont des termes, mais
n’en sont pas. Un terme qui ne contient pas de variables est dit clos.
Remarque: ni les parenthèses ni le point ne font pas partie du langage. Ils sont simplement là pour rendre les termes non-ambigus, i.e. pour indiquer dans quel ordre les fonctions ont été appliquées pour obtenir le terme. Voir du bon usage des parenthèses.
Une formule atomique est un prédicat du langage de arité appliqué à termes. Par exemple
sont des formules atomiques, mais
n’en sont pas (même si certaines d’entre elles sont des raccourcis communément utilisés).
Finalement nous sommes prêts à définir la syntaxe de la logique du premier ordre. Nous nous donnons les connecteurs logiques suivants
- Les connecteurs du Calcul des propositions: ;
- Les quantificateurs
- , qui se lit pour tout,
- , qui se lit il existe.
Une formule du premier ordre (ou formule bien formée) est:
- soit une formule atomique,
- soit, si et sont deux formules du premier ordre, l’une des expressions suivantes:
- , ou , ou , ou , etc.,
- , ou , pour une variable quelconque .
Voici des exemples de formules:
et des non-exemples:
(même si la première est un raccourci courant).
Variables libres et liées
Une variable est dite libre si elle n’est quantifiée par aucun quantificateur (dans son sous-arbre syntaxique). Elle est dite liée sinon. Par exemple, dans le prédicat
la variable est liée, tandis que est libre. De façon moins évidente, dans le prédicat
la première occurrence de la variable est liée, tandis que la deuxième est libre (en effet, le quantificateur ne porte pas sur elle, car il est dans un sous-arbre différent).
Une formule sans variables libres est dite close. Une formule de variables libres est parfois notée lorsque l’on veut indiquer clairement les noms de ses variables libres. Ceci est intéressant, par exemple, lorsque l’on forme un prédicat plus long à partir de , comme par exemple
Priorité des opérateurs
Les règles de priorité des opérateurs sont les mêmes que pour le Calcul des propositions. Les quantificateurs on par convention la priorité la plus basse, ainsi
est à lire comme
et non pas comme
On omet aussi les parenthèses lorsque plusieurs quantificateurs se suivent. Ainsi, la seule façon d’interpréter
est
Autres conventions
En dehors du cadre de la logique, le calcul des prédicats est utilisé pour exprimer de façon succincte des énoncés mathématiques. Pour avoir plus de souplesse et de maniabilité, l’on accepte dans ce cas d’autres raccourcis de notation qui ne sont pas standard dans la théorie de la logique du premier ordre.
Les raccourcis les plus courants sont
- pour ;
- , pour ;
- , pour .
Ces raccourcis peuvent être utilisés, par exemple, pour écrire
Une autre convention courant consiste à utiliser le symbole pour l’implication, à la place du symbole qui a déjà trop d’utilisations en algèbre.
Dans la suite de ce cours, nous allons rigoureusement éviter d’utiliser ces raccourcis.
Sémantique
Comme en Calcul des propositions, donner une sémantique au calcul des prédicats revient à attacher une interprétation à chaque symbole, et ensuite à chaque prédicat. Les choses sont rendues plus complexes par le fait que le calcul des prédicats permet de modéliser toutes les mathématiques, et que donc le nombre d’interprétations possibles est infini (alors que, rappelons-le, dans une proposition avec formules atomique a seulement modèles distincts).
La première chose à fixer pour interpréter le calcul des prédicats est un domaine du discours, en général un ensemble (par exemple les entiers), dans lequel on va interpréter tous les termes.
Une fois le domaine du discours fixé, on définit un modèle (ou interprétation, ou structure du premier ordre) comme l’assignation
- d’un élément du domaine à chaque symbole de constante ;
- d’une fonction du domaine dans lui même à chaque symbole de fonction ;
- d’une relation sur le domaine à chaque symbole de rélation.
Par exemple, si le langage est celui de l’arithmétique, un modèle possible sera l’assignation
- des nombres zéro, un, … aux constantes 0, 1, …
- des opérations d’addition, soustraction, … aux symboles +, -, …
- des relations d’égalité, d’ordre, … aux symboles =, ≤, …
Remarque : Tout ceci peut paraître une inutile lapalissade, car on donne à chaque symbole la signification qu’on lui attribue déjà ordinairement. Gardez à l’esprit, toutefois, qu’un même symbole peut être interprété de plusieurs façons différentes : les chiffres peuvent représenter des nombres en base deux, les opérations arithmétiques peuvent être faites modulo un entier, etc. La théorie du calcul des prédicats s’intéresse aux metathéorèmes qu’on peut démontrer indépendemment de la façon d’interpréter le langage ; il est donc naturel de monter à ce niveau d’abstraction, afin de pouvoir attacher des modèles exotiques au calcul des prédicats.
Une fois le modèle fixé, on peut passer à définir l’interprétation des prédicats. On commence par se donner une affectation des variables , c’est à dire une fonction qui à chaque variable associe un élément du domaine.
On peut maintenant définir l’interprétation d’un terme. L’interprétation d’un terme , sous l’affection est définie inductivement par
- si est une constante, l’élément du domaine qui est lui est associé ;
- si est une variable , l’élément du domaine ;
- si est de la forme , avec un symbole de fonction et des termes, l’interprétation de appliquée aux interprétations de , , etc.
Par exemple, si le terme est , en supposant que , son interprétation sous est
- 1 est interprété comme le nombre un,
- est interprété comme le nombre trois,
- est interprété comme un plus trois, c’est à dire quatre.
On peut finalement définir l’interprétation d’un prédicat sous une affectation . L’interprétation d’un prédicat ne va plus être un élément du domaine, mais plutôt une valeur de vérité (vrai ou faux).
- Si est de la forme , où est un symbole de relation et sont des termes, l’interprétation de appliquée aux interprétations de , , etc.
- Si est la forme , avec un opérateur du Calcul des propositions et et deux prédicats, la valeur de vérité de est obtenue à partir des valeurs de vérité de et grâce à la table de vérité de .
- Si est de la forme , son interprétation est vraie s’il existe une autre affectation , qui diffère de seulement en , et telle que l’interprétation de sous est vraie. En pratique ceci modélise le fait qu’il existe une valeur du domaine qui rend vrai .
- Si est de la forme , son interprétation est vraie si pour toute affectation , qui diffère de seulement en , l’interprétation de sous est vraie. En pratique ceci modélise le fait que toute valeur du domaine rend vrai .
Exemple : on fixe et . La formule est fausse car il existe un , par exemple , , qui diffère de seulement en et qui rend fausse. Au contraire, si on prend et , la même formule devient vraie (sous l’affectation ). On observe que la valeur de ne change rien à la vérité de la formule, car y est liée.
Lorsque la formule ne contient pas de variable libre, sa valeur de vérité ne dépend pas de l’affectation initiale , et on dit simplement que est vraie ou fausse dans le modèle.
Exemple : est fausse dans les entiers. En effet, pour n’importe quelle affectation initiale, il suffit de prendre et pour voir qu’il n’existe pas de choix pour qui vérifie . Par contre le même prédicat est vrai dans les rationnels, il existe en effet toujours un nombre rationnel compris entre deux nombres rationnels distincts. On voit ici que, même si la vérité d’un prédicat clos ne dépend pas de l’affectation, elle peut bien dépendre du modèle choisi.
Un prédicat clos qui est vrai dans un modèle est dit satisfaisable, un prédicat qui est vrai dans tout modèle est dit valide. Ceci est analogue aux définitions de satisfaisabilité et de tautologie en Calcul des prédicats.
Puisque ces notions ne sont bien définie que pour les prédicats clos, on s’intéresse par la suite principalement à ceux-ci. Une convention courrante pour traiter les prédicats non-clos consiste à convenir que toutes les variables libres sont universellement quantifiées. Ainsi lorsque l’on s’interroge sur la validité du prédicat
il est sous-entendu qu’on parle de la validité de
Théorie des modèles
Comme pour le Calcul des propositions, nous nous intéressons aux équivalences entre prédicats qui sont valides indépendemment de la façon dont on interprète les variables. Lorsque un prédicat est valide on note
Si et sont deux prédicats, et si tout modèle qui rend vrai rend aussi vrai , on dit que est une conséquence logique (ou sémantique) de et on note
Si et on dit que et sont équivalentes et on note
En général ces équivalences sont indépendantes du langage employé. Ainsi les équivalences qu’on peut espérer démontrer ressembleront plutôt à
pour tout prédicat .
Exercice : Montrer que cette équivalence est bien vérifiée.
-rennomage
Une des méthodes les plus simples pour obtenir des équivalences consiste à renommer certaines variables sans altérer la sémantique du prédicat. Ce procédé s’appelle -renommage (ou -conversion).
Si est une formule, contenant une variable liée, on peut remplacer toutes les occurrences liées de par une nouvelle variable (en faisant attention à ce que ne soit pas déjà employée et libre dans ), sans altérer la sémantique de .
Par exemple, si est la formule
elle peut être changée en
sans en altérer la sémantique. Lorsque l’on procède à un -renommage il faut faire attention à ce que la nouvelle variable ne soit pas déjà libre dans la formule ; en effet la formule
n’est pas équivalente à (en effet, n’y est plus libre).
Il est aussi possible de renommer les variables libres, par exemple dans la formule précédente, mais dans ce cas il ne fait pas beaucoup de sens de parler d’équivalence, car la formule n’est pas close. Par exemple, la formule
n’est pas équivalente à , néanmoins on peut noter cette nouvelle formule. En général, si est une formule de variable libre , on notera ou encore la même formule dans laquelle toutes les occurrences libres de ont été remplacées par .
Forme normale prénexe
La forme normale prénexe est une technique permettant de transformer un prédicat quelconque en un prédicat équivalent sous une forme standard. Un prédicat est dit en forme normale prénexe (en anglais, PNF) s’il est de la forme
où les sont des quantificateurs ou , et est un prédicat sans quantificateurs. Pour tout prédicat il existe un prédicat sémantiquement équivalent (en logique classique) en PNF ; ce prédicat peut être obtenu à l’aide de quelques transformations élémentaires, que nous listons ci-dessous.
Les équivalences remarquables du calcul des propositions :
-
Lois de De Morgan : ;
-
Distributivité : ;
-
Implication : ;
-
Double négation : .
Les équivalences remarquables du calcul des prédicats :
-
;
-
;
-
seulement si n’est pas libre dans ;
-
seulement si n’est pas libre dans ;
-
seulement si n’est pas libre dans ;
-
seulement si n’est pas libre dans .
Moyennant un -rennomage de la variable , ces quatre dernières règles peuvent être appliquées en toute circonstance.
D’autres règles de transformation, notamment concernant le connecteur , peuvent être déduites à partir de celles-ci.
Exercice : Prouver les équivalences remarquables ci-dessus.
Théorie de la preuve
La Théorie de la preuve de la logique du premier ordre n’est pas plus compliquée que celle du Calcul des propositions: en effet les systèmes de preuve sont les mêmes, après ajout de quelques règles d’inférence pour les quantificateurs. Voir Théorie de la preuve.